package http; import java.io.IOException; import java.net.URLDecoder; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.sun.net.httpserver.HttpExchange; public class FormUrlEncoded { public static boolean canRetriveFrom(HttpExchange t) { List<String> values = t.getRequestHeaders().get("Content-Type"); return values != null && values.size() == 1 && values.get(0).equals("application/x-www-form-urlencoded"); } // TODO assumes Content-Length present and UTF-8 charset public static Map<String,String> retrieveFrom(HttpServletRequest req) throws IOException{ Map<String, String> map = new HashMap<String,String>(); byte[] bytes = new byte[req.getContentLength()]; req.getInputStream().read(bytes); String content = new String(bytes); String[] pairs = content.split("&"); for(String pair : pairs) { String[] kvp = pair.split("="); map.put(URLDecoder.decode(kvp[0], "UTF-8"), URLDecoder.decode(kvp[1], "UTF-8")); } return map; } }